package br.com.comanda.dao.script;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import br.com.comanda.dao.helper.DataBaseAccess;
import br.com.comanda.dao.helper.DataBaseRepositoryHelper;
import br.com.comanda.util.Constantes;

/**
 * Script para gerar a base de dados do sistema no android. Esse script é
 * rodado toda vez que o aplicativo é criado ou atualizado (alterando versão
 * da base).
 * 
 * @author thiago
 * @since 09/01/2013
 */
public class RepositoryScript {

	public RepositoryScript(Context context) {
		databaseHelper(context);
		database();
	}

	public synchronized DataBaseRepositoryHelper databaseHelper(Context context) {
		if (DataBaseAccess.getDataBaseHelper() == null) {
			Log.d(Constantes.TAG_LOG, "Restartando conexao do helper");
			DataBaseAccess.restartConnection(context);
		}
		return DataBaseAccess.getDataBaseHelper();
	}

	public synchronized SQLiteDatabase database() {
		if (DataBaseAccess.getDatabase() == null) {
			Log.d(Constantes.TAG_LOG, "Abrindo Writable Database");
			DataBaseAccess.setDatabase(DataBaseAccess.getDataBaseHelper()
					.getWritableDatabase());
		}
		return DataBaseAccess.getDatabase();
	}

	public synchronized void close() {
		if (DataBaseAccess.getDatabase() != null) {
			DataBaseAccess.getDatabase().close();
		}
		if (DataBaseAccess.getDataBaseHelper() != null) {
			DataBaseAccess.getDataBaseHelper().close();
		}
	}
}
